<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    es6 讲解
</body>
</html>
<script src="./one.js"></script>
<script>
//   let arr = [{name:'亚瑟',id:1},{name:'亚索',id:2},{name:'剑圣',id:3},{name:'盲僧',id:4}];
//   let name = '王五'
//   console.log(`${name}可以继承5个亿`);
//    for(var i = 0;i<arr.length;i++){
//      arr[i].id+=1;
//     //  console.log(arr[i]);
//    }
//   console.log(arr);
// arr.forEach(item => {
//   item.id+=1;
// })
// console.log(arr);

// console.log(arr[5]);
// for(let i=0,item;item=arr[i++];){
//     item.id+=1;
// }
// console.log(arr);

// export default {} 导出 important xxx from 'xxx' 引入 模块的导出或者引入

// 前端的发展趋势：高内聚，低耦合。
//高内聚： 一个模块只处理，一种业务逻辑，模块与模块之间的关联度很低。


// 模块与模块之间可以相互隔离


// for in 和 for of 的区别
// let arr = [{name:'亚瑟',id:1},{name:'亚索',id:2},{name:'剑圣',id:3},{name:'盲僧',id:4}];
// let obj = {
//   name: '王二小',
//   age: 10,
//   thing: '放牛娃'
// }
// for in 既可以循环对象（当循环对象的时候key 是属性名 ） 又可以循环数组 （当循环数组，key 是索引）
// for(let key in arr){
//    console.log(key);
// }

// for of 不能循环对象，循环数组的时候 item 是 数组的目标元素
// for(let item of arr){
//   console.log(item);
// }





// let arr = [1,2,3,4,5,6,5,4,3,2,1]; // 对这个数组进行去重 并且要求使用 for 循环来写
// for(let i = 0;i<arr.length;i++){
//    for(let y = i+1;y<arr.length;y++){
//       if (arr[i]==arr[y]){
//         arr.splice(y,1);
//         y--;
//       }
//    }
// }
// console.log(arr);

// 返回的是 数组项下标; indexOf 从数组或者字符串中寻找，传入参数的项，找到就返回 索引，找不到就返回 -1；
// console.log(arr.indexOf(10));


// let arr1 = [];
// for(let i=0,item;item=arr[i++];){
//     if (!(arr1.indexOf(item)>-1)){
//         arr1.push(item)
//     }
// }
// console.log(arr1);


// 使用 es6 Set 数据解构去重
// let arr1 = [...new Set(arr)];
// console.log(arr1);

// 获取对象里面的所有的属性名
let obj = {
  name: '王二小',
  age: 10,
  thing: '放牛娃'
}

// Object.keys(obj); // 提取对象的 属性名，并且转换成数组
console.log(Object.keys(obj));
// Object.hasOwnProperty('num') 检验对象是否存在某一个 属性名
console.log(obj.hasOwnProperty('thing'));


</script>
